pohyb formulare

Otázka od: Lenka Donátová

29. 11. 2002 13:29

Poradte mi prosim nekdo ve ktere udalosti je odchycen pohyb formulare,
nemuzu docilit toho aby se mi ulozili vlastnosti Top a Left formulare.
Predem diky za radu
Lenka

Odpovedá: Petr Vones

29. 11. 2002 13:19

From: "Lenka Donátová" <lenkad@nemocnice-vs.cz>
> Poradte mi prosim nekdo ve ktere udalosti je odchycen pohyb formulare,
> nemuzu docilit toho aby se mi ulozili vlastnosti Top a Left formulare.

Pokud chces ukladat pozici formulare tak je vhodnejsi to udelat pri jeho
zavreni (napriklad v udalosti OnClose) a ne pri kazde zmene jeho pozice.

Jinak toho lze docilit napriklad odchycenim zpravy WM_MOVE:

type
  TForm1 = class(TForm)
    Label1: TLabel;
  private
    procedure WMMove(var Message: TWMMove); message WM_MOVE;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

{ TForm1 }

procedure TForm1.WMMove(var Message: TWMMove);
begin
  inherited;
  Label1.Caption := Format('%d, %d', [Left, Top]);
end;

Petr Vones

Odpovedá: likeapear

29. 11. 2002 13:34

nevim, jestli je na to vhodna udalost, ja jsem pouzival zpravy

WM_WINDOWPOSCHANGING
WM_WINDOWPOSCHANGED

likeapear

> Poradte mi prosim nekdo ve ktere udalosti je odchycen pohyb formulare,
> nemuzu docilit toho aby se mi ulozili vlastnosti Top a Left formulare.
> Predem diky za radu
> Lenka

Odpovedá: Jiří Matějka

29. 11. 2002 14:36

Neslo by to na OnPaint - pri pohybu se formular prekreslit musi... Ale
jestli to funguje nevim, nezkousel sem...

Jirka Matejka

----- Original Message -----
From: "Lenka Donátová" <lenkad@nemocnice-vs.cz>
To: <delphi-l@clexpert.cz>
Sent: Friday, November 29, 2002 1:06 PM
Subject: pohyb formulare


> Poradte mi prosim nekdo ve ktere udalosti je odchycen pohyb formulare,
> nemuzu docilit toho aby se mi ulozili vlastnosti Top a Left formulare.
> Predem diky za radu
> Lenka
>
>


---
Odchozí zpráva neobsahuje viry.
No viruses found in the outgoing message.
Zkontrolováno antivirovým systémem AVG (http://www.grisoft.cz).
Verze: 6.0.423 / Virová báze: 238 - datum vydání: 25.11.2002

Odpovedá: Petr Vones

29. 11. 2002 15:53

From: "Jiří Matějka" <matejka@stemmark.cz>
> Neslo by to na OnPaint - pri pohybu se formular prekreslit musi... Ale

Nemusi, prekleslovani se ridi necim uplne jinym nez pohybem formulare. Ten se
muze navic prekleslit i kdyz se s vim vubec nehybe.

Petr Vones

Odpovedá: Danik Frantik

29. 11. 2002 15:15

To tezko. Po presunu se nemusi volat OnPaint (pokud je zapnute prekreslovani
behem tazeni a form se nesune mimo obraz).

Danik

-----Original Message-----
Behalf Of Jiří Matějka
Neslo by to na OnPaint - pri pohybu se formular prekreslit musi... Ale
jestli to funguje nevim, nezkousel sem...

Odpovedá: Stanislav Kochan

29. 11. 2002 15:46

Podla mna by mohlo pomoct odchytenie WM_MOVE.

...
protected
    procedure WndProc(var Msg: TMessage);override;
...
procedure TForm1.WndProc(var Msg: TMessage);
begin
        inherited WndProc(Msg);
        case Msg.Msg of
                  WM_MOVE: SavePosition;
        end;
end;

> Poradte mi prosim nekdo ve ktere udalosti je odchycen pohyb formulare,
> nemuzu docilit toho aby se mi ulozili vlastnosti Top a Left formulare.
> Predem diky za radu
> Lenka